package com.hualude.roadsign.service;

import com.hualude.roadsign.dto.*;
import com.hualude.roadsign.model.SignfaultEntity;

import java.util.List;

/**
 * Created by xu-jiaHui on 2017/2/28.
 */
public interface SignfaultService {
    /**
     * @Description: 用于故障上报的DT显示
     * @Author: xu-jiaHui
     * @Date: 2017/2/28 19:57
     */
    public DTResponseDto getSignfault4DT(DTRequestDto dtRequestDto, Integer actorId, Integer gActorId, Integer userId, Integer orgId) throws Exception;

    /**
     * @Description: 删除故障上报信息
     * @Author: xu-jiaHui
     * @Date: 2017/3/2 15:42
     */
    public Integer deleteFaultReportByIds(String FaultReportIds) throws Exception;

    /**
     * @Description: 根据id更新故障上报信息
     * @Author: xu-jiaHui
     * @Date: 2017/3/5 10:34
     */
    public Integer updateSignFaultById(Integer roadSignId, Integer signFaultLevel, Integer signFaultType, String signFaultPic,
                                       String signFaultReason, Double repairAmount) throws Exception;

    /**
     * @Description: 根据路标Id获取经纬度
     * @Author: xu-jiaHui
     * @Date: 2017/3/6 11:06
     */
    public List<RoadpoleDto> getlongLatitude4Map(Integer roadSignId) throws Exception;

    /**
     * @Description: 故障审核4web
     * @Author: xu-jiaHui
     * @Date: 2017/3/15 11:22
     */
    public Integer signFaultAudit2Report(Integer isPass, String signFaultCheckBack, Integer signFaultId, Integer actorId, String signCheckTime, Integer maintenancePeopleId, Integer signFaultPeopleId, Integer userId) throws Exception;

    public Integer signFaultAudit(Integer isPass, String signFaultCheckBack, Integer signFaultId, Integer actorId, String signCheckTime, Integer maintenancePeopleId, Integer userId, Integer roadSignId, String signFaultReason, Integer signFaultLevel, Integer signFaultType, String signFaultPic, String signFaultTime, Double repairAmount) throws Exception;


    /**
     * @Description: 获取故障列表4APP
     * @Author: pan-jianan
     * @Date: 2017/5/11 20:53
     */
    public List<SignFaultReportDto> getFaultList(Integer signFaultPeopleId, String actorIds, Integer faultStatus,
                                                 Integer count, Integer size) throws Exception;


    /**
     * @Description: 故障详情By标牌编号4App
     * @Author: jiang-weirong
     * @Date: 2017/4/19 20:20
     */
    public List<SignfaultEntity> getSignfaultInfoByRoadSignId(Integer roadSignId) throws Exception;

    /**
     * @Description: 故障审核不通过4App
     * @Author: jiang-weirong
     * @Date: 2017/4/19 20:27
     */
    public Integer updateSignFault2fail(Integer signFaultId, Integer status, String signFaultCheckBack, Integer userId) throws Exception;

    /**
     * @Description: 故障审核通过4App
     * @Author: jiang-weirong
     * @Date: 2017/4/19 20:56
     */
    public Integer updateSignFault2success(Integer signFaultId, Integer status, String signFaultCheckBack, Integer userId) throws Exception;


    /**
     * @Description: 故障上报.
     * @Author: pan-jianan
     * @Date: 2017/4/19 20:55
     */
    public Integer reportSignFault(Integer roadSignId, Integer signFaultPeopleId, Integer signFaultLevel, Integer signFaultType,
                                   String signFaultPic, String signFaultReason, Double repairAmount, Integer orgId, Integer mainOrgId) throws Exception;

    /**
     * @Description: 获取当前故障用于DT
     * @Author: xu-jiaHui
     * @Date: 2017/3/18 15:38
     */
    public DTResponseDto getCurrentFault4DT(DTRequestDto dtRequestDto, Integer actorId, String maintenancePeopleName) throws Exception;


    /**
     * @Description: 获取用户公司信息用于选维护人
     * @Author: pan-jianan
     * @Date: 2017/4/19 19:32
     */
    public List<UserOrgDto4Notice> getOrgAndUserByUserId(Integer signFaultPeopleId) throws Exception;

    /**
     * @Description: 获取驳回故障用于DT
     * @Author: xu-jiaHui
     * @Date: 2017/3/31 22:01
     */
    public DTResponseDto getRejectedFault4DT(DTRequestDto dtRequestDto, Integer actorId, Integer userId) throws Exception;

    /**
     * @Description: 撤销驳回信息
     * @Author: xu-jiaHui
     * @Date: 2017/4/1 21:21
     */
    public Integer updateSignFaultCheckById(Integer isPass, Integer signFaultId, Integer actorId, Integer companyCheck, Integer MainCheck, String signCheckTime) throws Exception;

    /**
     * @Description: 获取未审核数量
     * @author chenzetong
     * @date 2017/4/16 20:30
     */
    public Integer getSignFaultUnAuditCount(Integer actorId, Integer gActorId, Integer userId, Integer orgId) throws Exception;

    /**
     * @Description: 根据标牌id获取标牌信息4信息查看
     * @Author: pan-jianan
     * @Date: 2017/4/20 21:05
     */
    public RoadsignDto getSignInfoBySignId(Integer roadSignId) throws Exception;

    /**
     * @Description: 获取故障审核 数量
     * @Author: xu-jiaHui
     * @Date: 2017/5/3 0:20
     */
    public Integer getSignFaultCount(Integer orgId, Integer actorId, Integer userId) throws Exception;

    /**
     * @Description: 获取公司信息用于选择
     * @Author: xu-jiaHui
     * @Date: 2017/5/6 20:56
     */
    public List<OrgDto> getOrg4Select(Integer actorId, Integer orgId) throws Exception;

    /**
     * @Description: 故障上报后修改标杆标牌的安全状态
     * @Author: xu-jiaHui
     * @Date: 2017/5/6 22:35
     */
    public Integer updateRoadSignAndPoleSecurity(Integer roadSignId) throws Exception;

    /**
     * @Description: 通过id获取审核拒绝原因
     * @Author: xu-jiaHui
     * @Date: 2017/5/7 2:26
     */
    public String getCheckBackBySignFaultId(Integer roadSignId) throws Exception;


    /**
     * @Description: 获取故障审核数据4APP
     * @Author: jiang-weirong
     * @Date: 2017/5/11 20:44
     */
    public List<SignFaultReportDto> getSignFaultInfOByUserIdStatus(Integer userId,
                                                                   String actorIds,
                                                                   Integer count,
                                                                   Integer size,
                                                                   Integer status) throws Exception;

    public Integer getSignFaultStatus(Integer signFaultId, Integer roadSignId) throws Exception;
}
